<script>
  // 高阶函数
  // filter  map  reduce  some  every
  // list.map((item)=>{})

  // map  返回值是一个新数组  数组中的每一项都是回调函数的返回值

  function selfMap(arr, cb) {
    let _arr = []
    for (let i = 0; i < arr.length; i++) {
      _arr.push(cb(arr[i]))
    }
    return _arr
  }
  
  // filter
  // 返回一个新数组   回调函数的返回值会作为判断条件存在  满足条件才会进入到新数组
  function seltFilter(arr, cb) {
    let _arr = []
    for (let i = 0; i < arr.length; i++) {
      if (cb(arr[i])) {
        _arr.push(arr[i])
      }
    }
    return _arr
  }

  // forEach
  // 没有返回值   回调函数拿到数组中的每一项 做一些事儿

  function each(arr, cb) {
    for (let i = 0; i < arr.length; i++) {
      cb(arr[i], i)
    }
  }
  let arr = [1, 3, 4]
  each(arr, (item, index) => {
    console.log(item, index)
  })


</script>